package yredis

import (
	"dgo/goutils/utils"
	"fmt"
)

func (this *PlgExRedis) SetValue(key string, value interface{}) error {
	if this.redisclt == nil {
		return fmt.Errorf("尚未建立连接!")
	}
	status := this.redisclt.Set(ctx_background, key, value, 0)
	_, err := status.Result()
	if err != nil {
		this.last_warn_redis = fmt.Sprintf("[%s]SET %s err:%s", utils.NowString(), key, err.Error())
		return err
	}
	return nil
}

func (this *PlgExRedis) GetValue(key string) (val interface{}, err error) {
	if this.redisclt == nil {
		return nil, fmt.Errorf("尚未建立连接!")
	}
	status := this.redisclt.Get(ctx_background, key)
	val, err = status.Result()
	if err != nil {
		this.last_warn_redis = fmt.Sprintf("[%s]GET %s err:%s", utils.NowString(), key, err.Error())
		return
	}
	return
}

func (this *PlgExRedis) RemoveValue(key string) (ok bool, err error) {
	if this.redisclt == nil {
		return false, fmt.Errorf("尚未建立连接!")
	}
	status := this.redisclt.Del(ctx_background, key)
	ok = status.Val() == 1
	err = status.Err()
	if err != nil {
		this.last_warn_redis = fmt.Sprintf("[%s]Remove %s err:%s", utils.NowString(), key, err.Error())
		return
	}
	return
}
